#!/usr/bin/python
# -*- coding: utf8 -*-
"""Classe de génération de texte aléatoire"""
import random
import re
mots = ('ad', 'aquam', 'albus', 'archaeos', 'arctos', 'argentatus',
   'arvensis', 'australis', 'biscort' 'borealis', 'brachy', 'bradus',
   'brevis', 'campus', 'cauda', 'caulos', 'cephalus', 'chilensis',
   'chloreus', 'cola', 'cristatus', 'cyanos', 'dactylus', 'deca',
   'dermis', 'delorum', 'di', 'diplo', 'dodeca', 'dolicho',
   'domesticus', 'dorsum', 'dulcis', 'echinus', 'ennea', 'erythro',
   'familiaris', 'flora', 'folius', 'fuscus', 'fulvus', 'gaster',
   'glycis', 'hexa', 'hortensis', 'it', 'indicus', 'lateralis',
   'leucus', 'lineatus', 'lipsem', 'lutea', 'maculatus', 'major',
   'maximus', 'melanus', 'minimus', 'minor', 'mono', 'montanus',
   'morphos', 'mauro', 'niger', 'nona', 'nothos', 'notos',
   'novaehollandiae', 'novaeseelandiae', 'noveboracensis', 'obscurus',
   'occidentalis', 'octa', 'oeos', 'officinalis', 'oleum',
   'orientalis', 'ortho', 'pachys', 'palustris', 'parvus', 'pedis',
   'pelagius', 'penta', 'petra', 'phyllo', 'phyton', 'platy',
   'pratensis', 'protos', 'pteron', 'punctatus', 'rhiza', 'rhytis',
   'rubra', 'rostra', 'rufus', 'sativus', 'saurus', 'sinensis',
   'stoma', 'striatus', 'silvestris', 'sit', 'so', 'tetra',
   'tinctorius', 'tomentosus', 'tres', 'tris', 'trich', 'thrix',
   'unus', 'variabilis', 'variegatus', 'ventrus', 'verrucosus', 'via',
   'viridis', 'vitis', 'volans', 'vulgaris', 'xanthos', 'zygos',
   )

class ipsum:
    def __init__(self):
        self.mots=mots
        
    def mot(self):
        """Retourne un mot aléatoire"""
        return random.choice(self.mots)
    
    def phrase(self,l=random.randrange(7, 18)):
        """Retourne une phrase aléatoire"""
        phrases=[]
        for i in range(l):
            phrases.append(self.mot())
        for i in range(random.randrange(0, 4)):
            r=random.randrange(l-4)+2
            #On vérifie que le mot précédent n'est pas un signe de ponctuation, pour éviter deux signes de ponctuation à la suite
            if phrases[r-1] != "," and phrases[r+1] != "," and phrases[r] != ",":
                phrases.insert(r, ",")
        phrases=' '.join(phrases).capitalize() + '.'
        return phrases
                    
    